专利摘要:
Verfahrenzum Messen und Kompensieren von Bitversatz von Datenübertragungsleitungen, welchemindestens eine Datenübertragungseinrichtungmit einer Datenempfangseinrichtung über einen parallelen Datenbusverbinden, mit den folgenden Verfahrensschritten für jede Datenübertragungsleitung:Messen der relativen Zeitverzögerungder Datenübertragungsleitungdurch Senden einer festgelegten Folge von Messvektoren (MV) über dieDatenübertragungsleitung,wobei jeder Messvektor (MV) aus einem abwechselnden Bitmuster besteht,wobei die Bitwechselfrequenz mit jedem übertragenen Messvektor (MV)halbiert wird;Vergleichen der empfangenen Messvektoren (MV'),die überdie Datenübertragungsleitung übertragenwurden, mit zugehörigenReferenzvektoren (RV), welche in der Datenempfangseinrichtung gespeichertsind; Verschieben der empfangenen Messvektoren durch Einfügen vonDateneinheitsintervallen (UI) bis ein empfangener Messvektor (MV') miteinem zugehörigenReferenzvektor (RV) übereinstimmt;Berechnen eines relativen Bitversatzes der Übertragungsleitung in Abhängigkeitvon der Anzahl von eingefügtenDateneinheitsintervallen (UI) in Bezug auf eine langsamste Datenübertragungsleitung;und Kompensieren des berechneten relativen Bitversatzes der Datenübertragungsleitungmittels Verzögerungselementen,welche in Abhängigkeitvon dem berechneten relativen Bitversatz geschaltet werden.
公开号:DE102004014450A1
申请号:DE200410014450
申请日:2004-03-24
公开日:2005-02-10
发明作者:Paul Georg Lindt
申请人:Infineon Technologies AG;
IPC主号:G06F1-04
专利说明:
[0001] DieErfindung betrifft ein Verfahren zum Messen und Kompensieren vonVersatz von Datenübertragungsleitungen,wobei jede eine Datenübertragungseinrichtungmit einer Datenempfangseinrichtung verbindet. Ein digitaler Verzögerungszeitausgleichwird von parallelen Datenverbindungen ohne eine Referenzleitungdurchgeführt.
[0002] Speicherbausteine,die in dem folgenden Text als DIMM (Dual In-Line Memory Modules)bezeichnet werden, besitzen einen definierten physikalischen Umfang.Zurückzuführen aufdie endliche Ausbreitungsgeschwindigkeit von elektrischen Signalen,korrespondiert der physikalische Umfang des DIMM somit zu einer Verzögerungszeitdes elektrischen Signals, die es benötigt, um von einer Signalquellezu einer Signalsenke zu laufen. Dieses Phänomen wird im Allgemeinen alsder „Leitungseffekt" bezeichnet, dasbedeutet, dass die „elektrischeLänge" der Zusammenschaltungennicht längerignoriert werden kann. Dieses ist die Situation, wenn die Komponentemit der in dem Signal auftretenden höchsten Frequenz eine Wellenlänge aufweist,welche in der gleichen Größenordnungliegt wie die physikalische Ausdehnung zwischen der Signalquelleund der Signalsenke.
[0003] Jehöher dieDatenrate in einem DIMM ist, je höher sind die Frequenzen derFrequenzanteile und je kürzersind die physikalischen Umfängebzw. Ausdehnungen, fürwelche dieser Leitungseffekt in Betracht gezogen werden muss. Dieheutigen Speicherentwicklungen benutzen Datenraten DR, die als einEr gebnis des beschriebenen Gegenstands zu bedeutenden zeitkritischenProblemen führen.Diese vorliegenden Speicherentwicklungen haben das besondere charakteristischeMerkmal eines zentralen integrierten Schaltkreises (IC) oder Speicherpuffer,der auf jedem DIMM aufgebracht ist. Dieser IC erzeugt die elektrischenSignale zur Kommunikation mit den lokalen Speicherbausteinen, dasheißtauf dem DIMM.
[0004] Dergrundlegende Aufbau nach dem Stand der Technik ist in 1 dargestellt. Wie darausersichtlich ist, ist hierbei ein Bereich von unterschiedlichen Signalenangezeigt, welche entweder von unterschiedlicher Länge (DQ/DQS)sind oder gleichzeitig von einer großen Zahl von Speicherbausteinen(CA) empfangen werden. Der HUB in der Mitte des Dualen-In-Line-Speicherbausteins(DIMM) oder -Memory Modules ist überbidirektionale Datenübertragungsleitungen,die einen Datenbus bilden, mit den DRAM-Chips auf demselben Speicherbausteinverbunden. Weiterhin ist der HUB oder Speicherpuffer über einenBefehls- und Adressbus (CA) mit den DRAMs verbunden. Das Dual In-LineMemory Module wie in 1 dargestelltkann an eine Hauptplatine bzw. ein so genanntes Motherboard angeschlossensein, welches einen Mikroprozessor aufweist. Der HUB oder Speicherpufferin der Mitte des Dualen-In-Line-Speicherbausteinsist übereinen Datenbus mit dem Mikroprozessor verbunden und versorgt denMikroprozessor mit gelesenen Daten aus den DRAMs. Da Abstände derDRAMs zu dem Speicherpuffer unterschiedlich sind, werden aus denDRAMs gelesene Daten den HUB oder Speicherpuffer in der Mitte desDualen-In-Line-Speicherbausteinszu unterschiedlichen Zeiten erreichen, was auf die Signal-Fortpflanzungszeitzurückzuführen ist.
[0005] 2 zeigt ein Blockdiagrammeines Dualen-In-Line-Speicherbausteinsmit einem Befehls- und Adressbus sowie Datenbussen, die jeden DRAMmit dem zentralen HUB verbinden.
[0006] 3 stellt eine allgemeineAnordnung gemäß dem Standder Technik dar, welche einen zentralen Empfänger (HUB) und X übertragendeDRAM-Bausteine aufweist. Der gesamte Datenbus hat eine Breite von nBits, so dass jeder übertragendeDRAM eine Datenbuskomponente von n/N Bits überträgt. Beispielsweise kann ein72 Bit Datenbus eines DIMM mit DRAMs in jedem Fall mit einer 8 BitDatenbuskomponente ausgeführtwerden. Die beschriebenen Leitungseffekte bedeuten, dass Daten unterschiedlichenVerzögerungszeiten inunterschiedlichen Verbindungsschaltungen unterzogen werden. In demZeitpunkt t1 senden alle n übertragendenDRAMs gleichzeitig ihre Datenbuskomponenten an den Empfänger, derinnerhalb des Speicherpuffers (HUB) angeordnet ist. Auf Grund ihrerunterschiedlichen Verzögerungszeiten;welche durch die unterschiedlichen Abstände zwischen den übertragendenDRAMs und dem Empfängerinnerhalb des HUB verursacht werden, erreichen die individuellenDatenbuskomponenten den Empfängerzu unterschiedlichen Zeiten (Zeiten t2, t3 und t4). Für paralleleDatenübertragungist es jedoch notwendig, dass alle Informationseinheiten (Bits),die zu einem ganzen Datenwort gehören, den Empfänger innerhalbeines Übertragungstaktzyklus' erreichen. In einerherkömmlichenAnordnung führtdiese Tatsache zu einer Begrenzung der maximalen Datenübertragungsratean dem Datenbus, da die schnelleren Datensignale, die von den DRAMsnahe am HUB stammen, immer auf die langsameren Signale von den weitentfernteren DRAMs warten müssen,bevor ein neuer Übertragungszyklusbeginnen kann.
[0007] 4 stellt das Problem dar,dass die Vollständigkeitder auf einem parallelen Datenbus übertragenen Datensignale durchdie unterschiedlichen Leitungsverzögerungszeiten gefährdet ist.Wie aus 4 ersichtlich ist,kann der Empfängerdie Daten nicht eher akzeptieren als frühestens zum Zeitpunkt „Datenvollständig". Dieses zeigt ebenfalls,dass die maximale Datenrate DR max dadurch beeinflusst wird. Der Übertrager,der am nächstenam Empfängerliegt (HUB), darf nicht eher mit dem Übertragen des nächsten Datenelementesbeginnen, bis alle anderen (langsameren) Datenelemente den Empfänger erreichthaben.
[0008] EinherkömmlichesVerfahren nach dem Stand der Technik zum Kompensieren von unterschiedlichen Verzögerungszeitenbesteht darin, die Verbindungen bzw. Leiterbahnen in einer mäanderförmigen Gestaltauf der gedruckten Schaltung bzw. Leiterplatte (PCB) zu routen.Dieses herkömmlicheVerfahren zur Kompensierung ist jedoch für viele Anwendungen ganz ungeeignet,da die MäanderzusätzlichenPlatz auf der gedruckten Schaltung erforderlich machen.
[0009] Einweiteres Verfahren nach dem Stand der Technik legt einen zusätzlichenReferenzkanal mit einem definierten Datenanteil zwischen dem Senderbzw. Überträger unddem Empfängerfest. Da es jedoch eine Zahl von Empfängerbausteinen auf einem DIMMgibt, erhöhtdieses zusätzlichdie Komplexität.Diese bekannten Verfahren aus dem Stand der Technik sind daher nurbis zu einem bestimmten Ausmaß zumBestimmen und Kompensieren der Verzögerungszeit von Datenbits geeignet.
[0010] Daserfindungsgemäße Verfahrenhat die Aufgabe, Einschränkungender Datenübertragungsratezu verhindern und nichtsdesto weniger die Vollständigkeit der übertragenenDaten sicherzustellen.
[0011] Daserfindungsgemäße Verfahrenhat die Aufgabe, die Einschränkungder Datenübertragungsratezu verhindern und nichtsdestoweniger die Vollständigkeit der übertragenenDaten sicherzustellen.
[0012] DieseAufgabe wird gelöstdurch ein Verfahren mit den Merkmalen des Hauptpatentanspruchs 1.
[0013] DieErfindung schafft ein Verfahren zum Messen und Kompensieren vonBitversatz von Datenübertragungsleitungen,welche mindestens eine Datenübertragungseinrichtungmit einer Datenempfangseinrichtung verbinden, mit den folgendenVerfahrensschritten fürjede Datenübertragungsleitung: Messender relativen Zeitverzögerungder Datenübertragungsleitungdurch Senden einer festgelegten Folge von Messvektoren (MV) über dieDatenübertragungsleitung,wobei jeder Messvektor (MV) aus einem abwechselnden Bitmuster besteht,wobei die Bitwechselfrequenz mit jedem übertragenem Messvektor (MV)halbiert wird; Vergleichen der empfangenen Messvektoren (MV'), die über dieDatenübertragungsleitung übertragenwurden, mit zugehörigenReferenzvektoren (RV), welche in der Datenempfangseinrichtung gespeichertsind; Verschieben der empfangenen Messvektoren (MV') durch Einfügen vonDateneinheitsintervallen (UI) bis ein empfangener Messvektor (MV') mit einem zugehörigen Referenzvektor(RV) übereinstimmt; Berechneneines relativen Bitversatzes der Übertragungsleitung in Abhängigkeitvon der Anzahl von eingefügtenDateneinheitsintervallen (UI) in Bezug auf eine langsamste Datenübertragungsleitung;und Kompensieren des berechneten relativen Bitversatzes derDatenübertragungsleitungmittels Verzögerungselementen,welche in Abhängigkeitvon dem berechneten relativen Bitversatz geschaltet werden.
[0014] Ineiner bevorzugten Ausführungdes Verfahrens zum Messen und Kompensieren von Bitversatz von Datenübertragungsleitungen,weist es die folgenden Verfahrensschritte für jede Datenübertragungsleitungauf: (a) Initialisieren eines Iterationsschleifen-Zählers (i)und einer Einfügungs-Zählvariableauf Null (i := 0; Einfügung:= 0); (b) Aktivieren der Datenübertragungseinrichtungzum Übertrageneines Messvektors (MVi), welcher aus einemabwechselnden Bitmuster mit einer vorher festgelegten Bitwechselfrequenzbesteht, überdie Datenübertragungsleitungzu der Datenempfangseinrichtung, wobei jedes Bit während einesvorher festgelegten Dateneinheitsintervalls (UI) übertragenwird, wobei der Messvektor (MVi) zueinem Referenzvektor (RVi) korrespondiert,der in der Datenempfangseinrichtung gespeichert ist; (c) Vergleichen des von der Datenempfangseinrichtung über dieDatenübertragungsleitungempfangenen Messvektors (MVi) mit dem gespeichertenReferenzvektor (RVi); (d) wobei bis zum Übereinstimmendes empfangenen Messvektors (MV'i) mit dem gespeicherten Referenzvektors(RVi) die folgenden Teilschritte in einerIterationsschleife durchgeführtwerden: In einer bevorzugten Ausführungsform des Verfahrens zumMessen und Kompensieren von Bitversatz von Datenübertragungsleitungen, weistdas Berechnen der relativen Versätzeder Datenübertragungsleitung diefolgenden Verfahrensschritte auf: (e1) Erhöhendes Iterationsschleifen-Zählers(i) (i = i + 1); (e2) Aktivieren der Datenübertragungseinrichtungzum Übertrageneines nächstenMessvektors, der die halbe Bitwechselfrequenz des letzten Messvektorsaufweist, welcher in der Iterationsschleife im Verfahrensschritt(d) überdie Datenübertragungsleitungan die Datenempfangseinrichtung übertragenwurde; (e3) Ersetzen des in der Iterationsschleife des Verfahrensschritts(d) verwendeten letzten Referenzvektors (RV) durch einen Referenzvektor,der zu dem im Verfahrensschritt (e2) übertragenen Messvektor korrespondiert; (e4) Vergleichen des von der Datenempfangseinrichtung empfangenenMessvektors (MV')mit dem im Verfahrensschritt (e3) ersetzten Referenzvektor; (e5) wobei der Versatz der Übertragungsleitungwie folgt berechnet wird: Versatz = 21 – Einfügung für den Fall,dass die im Verfahrensschritt (e4) verglichenen Vektoren nicht übereinstimmen,und wie folgt berechnet wird: Versatz = – Einfügung für den Fall, dass die im Verfahrensschritt(e4) verglichenen Vektoren übereinstimmen,wobei Einfügungdie im Verfahrensschritt (d4) akkumulierte Einfügungs-Variable ist.
[0015] Ineiner bevorzugten Ausgestaltung wird ein Verfahren zum Messen undKompensieren von Bitversatz einer Datenübertragungsleitung ausgeführt, wenndie Datenempfangseinrichtung hochgefahren wird.
[0016] Ineiner bevorzugten Ausführungwerden Daten von der Datenübertragungseinrichtungan die Datenempfangseinrichtung in einem normalen Datenübertragungsmodus übertragen,nachdem das Kompensieren des Versatzes alle Datenübertragungsleitungendurchgeführtworden ist.
[0017] Ineiner bevorzugten Ausführungsformsind die DatenübertragungseinrichtungenDRAMs.
[0018] Ineiner bevorzugten Ausführungsformist die Datenempfangseinrichtung ein HUB eines Speicherbausteins.
[0019] Inbevorzugter Ausgestaltung weist die Datenempfangseinrichtung für jede Datenübertragungsleitung eineTakt- und Datenrückgewinnungseinheitauf, um mit dem ersten überdie Übertragungsleitung übertragenenMessvektor mitzulaufen.
[0020] Ineiner bevorzugten Ausführungdes Verfahrens zum Messen und Kompensieren von Bitversatz von Datenübertragungsleitungen,werden zum Kompensieren des Versatzes der Datenübertragungsleitung die folgendenVerfahrensschritte durchgeführt: Bestimmendes maximalen Versatzes (skew max) der berechneten Versätze allerDatenübertragungsleitungen; Berechneneines relativen Versatzes einer jeden Datenübertragungsleitung mit Bezugauf den maximalen Versatz der langsamsten Datenübertragungsleitung, undVerzögernjeder Datenübertragungsleitungmit ihrem berechneten relativen Versatz.
[0021] Ineiner bevorzugten Ausführungdes erfindungsgemäßen Verfahrenswird die Datenübertragungseinrichtungmittels eines Anforderungssignals aktiviert, welches über eineseparate Steuerleitung von der Datenempfangseinrichtung der Datenübertragungseinrichtungengesendet wird.
[0022] Inbevorzugter Ausgestaltung werden die Datenübertragungseinrichtungen gleichzeitigaktiviert.
[0023] Ineiner bevorzugten Ausführungsformdes Verfahrens der vorliegenden Erfindung bildet die Datenübertragungsleitungeinen Teil eines bidirektionalen Datenbus.
[0024] Ineiner bevorzugten Ausführungdes erfindungsgemäßen Verfahrenswird das Vergleichen der empfangenen Messvektoren und der Referenzvektorenmittels einer EXOR-Logik ausgeführt.
[0025] ImFolgenden werden bevorzugte Ausführungsformendes erfindungsgemäßen Verfahrenszum Messen und Kompensieren von Bitversatz von Datenübertragungsleitungenmit Bezugnahme auf die beigefügten Zeichnungenbeschrieben.
[0026] 1 zeigt einen Dual-In-Line-Speicherbausteingemäß dem Standder Technik;
[0027] 2 zeigt ein Blockdiagrammeines Dual-In-Line-Speicherbausteinsgemäß dem Standder Technik;
[0028] 3 zeigt ein Diagramm zurDarstellung des der vorliegenden Erfindung zu Grunde liegenden Problems;
[0029] 4 zeigt ein Impulsdiagrammzur Darstellung des der vorliegenden Erfindung zu Grunde liegenden Problems;
[0030] 5 zeigt ein Impulsdiagrammzur Darstellung des durch das erfindungsgemäße Verfahren erzielten Ergebnisses;
[0031] 6 zeigt ein Blockdiagrammeiner erfindungsgemäßen Basisanordnung;
[0032] 7 zeigt ein Flussdiagrammeiner bevorzugten Ausgestaltung des erfindungsgemäßen Verfahrens zumMessen und Kompensieren von Bitversatz von Datenübertragungsleitungen;
[0033] 8 zeigt ein Flussdiagrammeines Vorgangs zum Messen von Versatz gemäß der vorliegenden Erfindung;
[0034] 9 zeigt Beispiele zur Darstellungder Funktionalitätdes erfindungsgemäßen Verfahrenszum Messen und Kompensieren von Bitversatz von Datenübertragungsleitungen;
[0035] 10 zeigt ein zweites Beispielzur Darstellung der Funktionalitätdes erfindungsgemäßen Verfahrenszum Messen und Kompensieren von Bitversatz von Datenübertragungsleitungen;
[0036] 11 zeigt ein Flussdiagrammeines Vorgangs zum Kompensieren von Versatz gemäß der vorliegenden Erfindung.
[0037] 5 stellt im Prinzip dasErgebnis dar, welches durch das Verfahren gemäß der vorliegenden Erfindungerreicht wird. Die in den Datenbits angezeigten Zahlen stellen dieVerbindung dar, das bedeutet, dass alle mit „1" bezeichneten Bits einen Bestandteileines Datenwortes 1, alle mit „2" bezeichneten Bits einen Bestandteileines Datenwortes 2 bilden und so weiter. Wie zu sehenist, weist die Datenleitung n eine Verzögerung von 3 UI im Vergleichzu der Datenleitung 1 und 2 UI in Vergleich zu der Datenleitung 2 auf.Wenn die Verzögerungszeitder individuellen Signale bekannt ist, können die schnelleren Signalein dem Empfänger künstlichverzögertwerden (De-Skewing bzw. Auflösenvon Bitversatz). Dieses erfolgt mittels einer geeigneten Zahl (m)von Verzögerungselementen,welche jedes Datensignal durch einen Taktimpuls oder Taktperiodeverzögern,und folglich durch ein UI. Nach dieser eingefügten Verzögerung wird die Integrität der Datennochmals sichergestellt, mit dem Vorteil, dass die aktuellen DatenübertragungsrateDR beachtlich erhöhtwerden kann.
[0038] DieVerzögerungselementesind zur Kompensation des Bitversatzes von n Datenübertragungsleitungenvorgesehen, die m Datenübertragungseinrichtungenmit der Datenempfangseinrichtung verbinden. Zur Kompensation desBitversatzes der Datenübertragungsleitungenwird der relative Bitversatz einer jeden Datenübertragungsleitung mit Bezugauf die langsamste Datenübertragungsleitungberechnet. Das in 5 gezeigteBeispiel stellt eine Datenübertragungsleitungn mit einem relativen Bitversatz Sn2 von2 UI in Bezug auf Datenübertragungsleitung 2 undmit einem relativen Bitversatz Sn1 von 3UI in Bezug auf Datenübertragungsleitung 1 dar.Das Verfahren gemäß der vorliegendenErfindung legt den maximalen relativen Bitversatz von allen Datenübertragungsleitungenmit Bezug auf die langsamste Datenübertragungsleitung fest, welcherin dem in 5 dargestelltenBeispiel 3 UI beträgt.
[0039] DieDatenübertragungsleitung 1 weisteinen relativen Bitversatz S1n zu der langsamstenDatenübertragungsleitungn von 3 UI auf. Demgemäß wird dieerste Datenübertragungsleitung 1 miteinem relativen Bitversatz von 3 UI nach dem erfindungsgemäßen Verfahrenverzögert.Die Datenübertragungsleitung 2 miteinem relativen Bitversatz S2n von 2 UImit Bezug auf die langsamste Datenübertragungsleitung n wird mitdem berechneten relativen Bitversatz von 2 UI verzögert. Dielangsamste Datenübertragungsleitungn wird nicht verzögert.
[0040] DieKompensation der berechneten relativen Bitversätze der Datenübertragungsleitungenwird mittels Verzögerungselementendurchgeführt,welche in Abhängigkeitvon den berechneten relativen Bitversätzen der Datenübertragungsleitungengeschaltet werden. Jede Datenübertragungsleitungist mit einer Kette von in Serie verbundenen Verzögerungselementenverbunden, welche in Abhängigkeitvon einem Steuersignal gemäß den be rechnetenBitversätzender Datenübertragungsleitungengeschaltet werden.
[0041] Wieaus 5 ersichtlich ist,weisen das von den Verzögerungselementenausgegebene Datenbit zu jeder Zeit nur Datenbits auf, welche zudemselben Datenwort gehören.Dieses parallele Ausgangssignal mit kompensiertem Bitversatz wirdvon dem Speicherpuffer 2 an den auf der Hauptplatine bzw.auf dem Motherboard angeordneten Mikroprozessor geleitet.
[0042] 6 zeigt eine Anordnung für das Verfahrenzum Messen und Kompensieren von Versatz von Datenübertragungsleitungengemäß der vorliegendenErfindung.
[0043] DRAMs 1-i undein Speicherpuffer oder HUB 2 sind über eine Datenübertragungsleitung 3-i verbunden.Zur Vereinfachung der Darstellung ist jeder DRAM-Chip 1-i anden Speicherpuffer 2 übereine Datenübertragungsleitung 3-i angeschlossen.In einer realen Anordnung ist jeder DRAM-Chip 1-i an denSpeicherpuffer 2 überparallele Datenleitungen angeschlossen, welche einen Bestandteileines bidirektionalen Datenbusses bilden. In einer typischen Anordnungsind neun DRAM-Bausteine 1-i vorgesehen, wobei jeder anden Speicherpuffer 2 überacht Datenübertragungsleitungenangeschlossen ist, welche einen bidirektionalen Datenbus mit einerDatenbusbreite von 72 Bit bilden. Jede Datenübertragungsleitung 3-i verbindet,wie in 6 gezeigt, eineDatenübertragungseinrichtung 4-i innerhalbeines DRAM-Bausteins 1-i und eine Datenempfangseinrichtung 5-i innerhalbdes Speicherpuffers 2. Für einen bidirektionalen Datenbusmit einer Datenbreite von 72 Bit sind 72 Datenempfangseinrichtungen 5-i innerhalbdes HUB oder Speicherpuffers 2 vorgesehen. Da die DRAM-Bausteine 1-i unterschiedlicheAbständezu dem Speicherpuffer 2 aufweisen, vari iert die Länge derDatenübertragungsleitungen 3-i zwischenden DRAM-Bausteinen 1-i und dem Speicherpuffer 2 dergestalt, dassBitversätzeoder Zeitverzögerungenauf den jeweiligen Datenübertragungsleitungenauftreten, die kompensiert werden müssen.
[0044] JederDRAM-Baustein 1-i weist eine Datenquelle 6-i vongespeicherten Daten, die in den Speicherpuffer 2 eingelesenwerden sollen, und einen Mustergenerator 7-i auf, welcherdie Messvektoren MV erzeugt, die zum Messen des Bitversatzes derjeweiligen Datenübertragungsleitung 3-i verwendetwerden. In den korrespondierenden Empfangseinrichtungen 5-i werdenReferenzdatenvektoren RV gespeichert. In einer bevorzugten Ausführungsformstammen die Messvektoren MV aus dem Speicherbereich und werden imvoraus zum Messvorgang vorher geladen.
[0045] DerSpeicherpuffer 2 weist eine Steuereinheit 8 auf,welche übereine Steuerleitung 9-i mit dem Messmustergenerator 7-i einesjeden DRAM-Bausteins 1-i angeschlossen ist. Die Steuereinheit 8 sendeteinen Anforderungsbefehl zum Messen gleichzeitig an alle Mustergeneratoren 7-i über einejeweilige Steuerleitung 9-i. Jeder DRAM-Baustein 1-i weistweiterhin Multiplexereinrichtungen 10-i auf. In dem normalenDatenübertragungsmoduswird die Datenquelle 6-i eines jeden DRAM-Bausteins 1-i,welcher mit einem ersten Eingang der Multiplexereinrichtung 10-i über eineDatenleitung 11-i verbunden ist, von dem Multiplexer 10-i aufdie Datenübertragungseinrichtung4-i durchgeschaltet.
[0046] BeiEmpfang des Anforderungsbefehls zum Messen von der Steuereinheit 8 wirddie Multiplexereinrichtung 10-i auf den anderen Einganggeschaltet, das heißt,der Mustergenerator 7-i wird von der Steuereinheit 8 aktiviertund auf die Datenüber tragungseinrichtung 4-i geschaltet.Eine vorher festgelegte Folgen von Messvektoren MV wird über dieDatenübertragungsleitung 3-i zuder korrespondierenden Datenempfangseinrichtung 5-i übertragen.In der Datenempfangseinrichtung 5-i sind zu den übertragenenMessvektoren (MV) korrespondierende Referenzvektoren (RV) gespeichert.Die Referenzvektoren RV weisen das gleiche Bitmuster wie die übertragenenMessvektoren MV auf.
[0047] 7 zeigt ein Flussdiagrammeiner bevorzugten Ausführungsformdes Verfahrens zum Messen und Kompensieren von Versatz von Datenübertragungsleitungengemäß der vorliegendenErfindung.
[0048] Nachdem Start im Verfahrensschritt S0 wird der Speicherpuffer HUB 2 ineinem Verfahrensschritt S1 eingeschaltet. Die Steuereinheit 8 desSpeicherpuffers 2 sendet eine Anforderung an alle DRAMs 1-i ineinem Verfahrensschritt S2, um mit der Übertragung von Messvektor MVzu beginnen.
[0049] Ineinem Verfahrensschritt S3 werden die Bitversätze von allen Datenübertragungsleitungen 3-i des bidirektionalenDatenübertragungsbussesgemessen.
[0050] Nachdemdas Messen der Bitversätzeauf den Datenübertragungsleitungenvollständigdurchgeführt ist,werden die Bitversätzein einem Verfahrensschritt S4 kompensiert.
[0051] NachKompensation der Bitversätzewerden die DRAM-Bausteine in einem Verfahrensschritt S5 in einennormalen Betriebsmodus geschaltet, um auf Anforderung in den Datenquellen 6-i gespeicherteDaten überdie Datenübertragungsleitungen 3-i zuden jeweiligen Datenempfangseinrichtungen 5-i zu übertragen.
[0052] DasVerfahren endet mit Verfahrensschritt S6.
[0053] 8 zeigt ein Flussdiagrammdes Vorgangs zum Messen von Bitversatz in Verfahrensschritt S3.
[0054] ImVerfahrensschritt S3-0 wird der Vorgang zum Messen von Bitversatzgestartet.
[0055] Ineinem ersten Verfahrensschritt S3-1 wird eine Takt- und Datenrückgewinnungseinheitfreigeschaltet, um mit den überdie Datenübertragungsleitungen 3-i übertragenenDaten mitzulaufen bzw. mit ihnen synchron zu laufen. Weiterhin wirdein Iterationsschleifenzähleri initialisiert und auf Null gesetzt. Weiterhin wird eine Einfügungs-Variable(Einfügung)auf Null zurückgesetzt.Die Steuereinheit 8 aktiviert die Datenübertragungseinrichtung 4-i,um einen Messvektor MV mit einem wechselnden Datenbitmuster miteiner Wechselfrequenz überdie Datenübertragungsleitungen 3-i andie Datenempfangseinrichtung 5-i zu übertragen. Der erste MessvektorMV, der über die Datenübertragungsleitung 3-i übertragenwird, weist die höchsteWechselfrequenz auf, das heißt,dass der Mustergenerator 7-i einen Messvektor MV mit einem Bitmuster überträgt, in demein hohes Bit („1") und ein niedrigesBit („0") sich abwechseln,wobei jedes Bit eine Zeitlängeeines Taktsignals CLK aufweist. MV∅ = „10101010..."
[0056] Derkorrespondieren Referenzvektor RV ist innerhalb der Datenempfangseinrichtung 5-i gespeichert.
[0057] Ineinem Verfahrensschritt S3-3 vergleicht eine Datenvergleichseinheitinnerhalb der Datenempfangseinrichtung 5-i den über dieDatenübertragungsleitung 3-i empfangenenMessvektor MV mit dem in einer Speichereinheit gespeicherten korrespondierendenReferenzvektor RV.
[0058] Wennim Verfahrensschritt S3-3 entschieden wird, dass der empfangeneMessvektor MV und der gespeicherte Referenzvektor RV nicht übereinstimmen,wird in eine Iterationsschleife eingestiegen.
[0059] Ineinem Verfahrensschritt S3-4 wird eine Zahl N von Dateneinheitsintervallen(UI) eingefügt,indem der empfangene Messvektor MV mittels eines Schieberegistersverschoben wird. Die Zahl der eingefügten Datenintervalle (UI) wirdgezählt,indem eine Einfügungs-Variable(Einfügung)erhöhtwird: Einfügung= Einfügung+ N, wobei gilt: N = 21
[0060] Ineinem Verfahrensschritt S3-6 wird der Iterationsschleifenzähler i erhöht und derzu vergleichende aktuelle Referenzvektor RVi wirddurch den nächstenReferenzvektor RVi+1 ersetzt, welcher diehalbe Bitwechselfrequenz der vorhergehenden Referenzvektors RV aufweist; Ineinem Verfahrensschritt S3-7 sendet die Steuereinheit 8 desSpeicherpuffers 1 eine Anforderung an die DRAMs 1-i,um die Datenübertragungseinrichtungen 7-i zuaktivieren, damit diese den nächstenMessvektor (MVi+1) übertragen, der die halbe Bitwechselfrequenzdes vorhergehenden Messvektors (MVi) aufweist.Dann kehrt der Verlauf zu dem Verfahrensschritt S3- 2 zurück. Nachdemdie Iterationsschleife mehrmals durchlaufen ist, wird der Vergleichim Verfahrensschritt S3-2 schließlich eine Übereinstimmung zwischen demaktuellen Messvektor MV und dem aktuellen Referenzvektor RV feststellen.Der Verlauf verlässtdie Schleife im Verfahrensschritt S3-3 nachdem eine Übereinstimmungvon der Vergleichseinrichtung der Datenempfangseinrichtung 5-i angezeigtwurde, um mit dem Verfahrensschritt S3-8 fortzufahren. Im VerfahrensschrittS3-8 wird der Iterationsschleifenzähler i erhöht (i := i + 1).
[0061] ImVerfahrensschritt S3-9 aktiviert die Steuereinheit 8 desSpeicherpuffers 2 die Datenübertragungseinrichtung 7-i,um einen nächstenMessvektor (MVi+1) mit der halben Bitwechselfrequenzdes letzten, in der Iterationsschleife im Verfahrensschritt S3-7 übertragenenMessvektors zu übertragen.Für denVergleich ersetzt ein aktueller Referenzvektor RVi+1 denletzten Referenzvektor RVi, der in der Iterationsschleifeim Verfahrensschritt S3-2 verwendet wurde. Der nächste über die Datenübertragungsleitung 3-i übertrageneMessvektor MV wird mit dem ersetzten Referenzvektor RVi+1 verglichen,um festzustellen, um diese übereinstimmen.
[0062] ImVerfahrensschritt S3-11 wird entschieden, ob beide Vektoren übereinstimmen.Wenn beide Vektoren nicht übereinstimmen,wird der Bitversatz der jeweiligen Datenübertragungsleitung im Verfahrensschritt S3-12wie folgt berechnet: Bitversatz = 21 – Einfügung, wobeiEinfügungdie im Verfahrensschritt S3-4 der Iterationsschleife aufsummierte Einfügungs-Variableist.
[0063] Wenndazu im Gegensatz im Verfahrensschritt S3-11 entschieden wird, dassder Referenzvektor RV und der Messvektor MV übereinstimmen, die im VerfahrensschrittS3-10 verglichen wurden, wird der Bitversatz der jeweiligen Datenübertragungsleitungim Verfahrensschritt S3-13 wie folgt berechnet: Bitversatz= – Einfügung WobeiEinfügungdie im Verfahrensschritt S3-4 der Iterationsschleife aufsummierteEinfügungs-Variableist.
[0064] Nachdemder Bitversatz der Datenübertragungsleitungim Verfahrensschritt S3-12, S3-13 berechnet worden ist, werden dieeingefügtenDateneinheitsintervalle (UI) im Verfahrensschritt S3-14 entfernt,und der Vorgang zum Messen von Bitversatz wird im VerfahrensschrittS3-15 beendet.
[0065] EinVorgang zum Messen von Bitversatz, wie in 8 dargestellt, wird mittels Beispielenmit Bezugnahme auf 9, 10 erläutert.
[0066] 9 zeigt die Verfahrensschritteeines Vorgangs zum Messen von Bitversatz in einem Fall, in dem dieDatenübertragungsleitungeinen Bitversatz von drei Einheitsintervallen (3 UI) aufweist.
[0067] Derersten Referenzmessvektor RV,der fürden Vergleich mit dem korrespondierenden Messvektor MV mitdem Referenzvektor verwendet wird, ist die höchste Wechselfrequenz, dasheißtein Bitmuster „101010101..."
[0068] ImVerfahrensschritt S3-1 wird die Datenübertragungseinrichtung 7-i aktiviert,um einen korrespondierenden Messvektor MV0 miteiner vorher festgelegten Bitwechselfrequenz über die Datenübertragungsleitung 3-i zumMessen zu übertragen.Der erste an die Datenempfangseinrichtung 5-i übertrageneMessvektor MV0 weist die höchste Bitwechselfrequenzauf, das heißt,dass der erste Messvektor MV0 ein Bitmustervon „101010..." aufweist.
[0069] Dain dem in 9 dargestelltenBeispiel die Datenübertragungsleitung 3-i eineZeitverzögerungoder einen Bitversatz von + 3 UI aufweist, empfängt die Datenempfangseinrichtung 5-i einen Datenvektormit einer Zeitverzögerungvon drei Bits. Die ersten drei Bits des empfangenen MessvektorsMV, welcher in einem Schieberegister gespeichert ist, haben denlogischen Bitwert „0", wie aus 9A hervorgeht. Der gespeicherteReferenzvektor RV0 und der empfangene MessvektorMV0 werden über eine EXOR-Logik verglichen,was zu einem logischen Vergleichsergebnis führt, wie in 9A dargestellt ist. Wie es ersichtlichist, liefert das Vergleichsergebnis in dem vorliegenden Beispieleine statische „1", welche anzeigt,dass beide Vektoren nicht übereinstimmen.Folglich wird die Iterationsschleife mit den VerfahrensschrittenS3-3, S3-4, S3-5, S3-6, S3-7 und S3-2 durchlaufen, und der Iterationsschleifenzähler i wirdwie in 9B gezeigt erhöht. Dievon der Steuereinheit 8 des Speicherpuffers 2 aktivierteDatenübertragungseinrichtung 7-i überträgt über dieDatenübertragungsleitung 3-i dennächstenMessvektor MV1 mit der halben Bitwechselfrequenzdes vorhergehenden Messvektors (MV0) andie Datenempfangseinrichtung 5-i. Der Referenzvektor RV0 wird durch einen nächsten Referenzvektor RV1 ersetzt, der zu dem nächsten Messvektor korrespondiert.Demgemäß wird derVergleich in der Datenempfangseinrichtung 5-i mit dem nächsten Referenzvektorwie in 9B dargestelltmit einem Bitmuster „11001100..." ausgeführt. ImVerfahrensschritt S3-5 werden 20 = 1 Dateneinheitsintervalle(UI) in den Messvektor MV1 eingefügt, indemder Dateninhalt des Schieberegisters, in welchem der empfangeneMessvektor gespeichert ist, um ein Bit nach rechts verschoben wird,wie aus 9B ersichtlichist. Die vierte „0" in der zweiten Zeilevon 9B wird für den folgendenVergleich von RV1 und MV1 eingefügt.
[0070] Nachdemdie Verschiebung abgeschlossen ist, wird der Iterationsschleifenzähler i imVerfahrensschritt S3-6 erhöht.Die Zahl von eingefügtenDateneinheitsintervallen UI wird durch Aufsummieren der Einfügungs-Variablegezählt(Einfügung= 0 + 20 = 1).
[0071] Derempfangene Messvektor MV1, der nach rechtsverschoben ist, wird mit dem gespeicherten Referenzvektor RV1 durch einen EXOR-Vorgang verglichen, wiein 9B zu sehen ist,und eine statische Null am Ausgang der EXOR-Logik zeigt eine positive Übereinstimmungzwischen einem Messvektor MV1 und dem ReferenzvektorRV1 an. Auf Grund dieser positiven Übereinstimmungwird die Iterationsschleife verlassen, und der Iterationsschleifenzähler i wirdim Verfahrensschritt S3-8 erhöhtauf i = 2.
[0072] ImVerfahrensschritt S3-9 aktiviert die Steuereinheit 8 dieDatenübertragungseinrichtungund überträgt den nächsten MessvektorMV2 mit der halben Bitwechselfrequenz desletzten Messvektors MV1, der in der Iterationsschleife über dieDatenübertragungsleitung 3-i andie Datenempfangseinrichtung 5-i übertragen wurde. Außerdem wirdder letzte in der Iterationsschleife verwendete Referenzvektor RV1 durch einen Referenzvektor RV2 ersetzt,der zu dem übertragenenMessvektor MV2 korrespondiert.
[0073] Wieaus 9C ersichtlich ist,weist der nächsteReferenzvektor RV2 ein wechselndes Bitmustermit der halben Bitwech selfrequenz des Referenzvektor RV1 auf,wie in 9B gezeigt, undkorrespondiert zu dem übertragenenMessvektor MV2. In 9C besitzt der Referenzvektor RV2 ein Bitmuster „1111000011110000...", das zu dem gesendetenMessvektor MV2 „1111000011110000..." korrespondiert,aufgrund der Zeitverzögerungder Datenübertragungsleitung 3-i,die in dem in 9 dargestelltenBeispiel 3 UI beträgt,wobei der in dem Eingang der Datenempfangseinrichtung 5-i gepufferteMessvektor MV2 dreimal eine „0" am Anfang und dieeine eingefügte „0" von dem Verschiebevorgangaufweist.
[0074] ImVerfahrensschritt S3-10 werden der Referenzvektor RV2 undder empfangene und verschobene Messvektor MV2 miteinanderin einem EXOR-Vorgang verglichen. Das Vergleichsergebnis ist in 9C dargestellt. In dem gegebenenBeispiel zeigt die statische „1" am Ausgang der EXOR-Logikan, dass beide Vektoren RV2 MV2 nicht übereinstimmen,so dass der Verlauf nach Verfahrensschritt S3-11 mit Verfahrensschritt S3-12fortgesetzt wird. Der Bitversatz der Datenübertragungsleitung wird imVerfahrensschritt S3-12 berechnet: Bitversatz = 22 – Einfügung = 4 – 1 = +3 UI.
[0075] 10 zeigt ein weiteres Beispielmit einer Datenübertragungsleitung,die einen negativen Bitversatz von – 3 UI aufweist, mit Bezugauf eine Zeitreferenz. In dem gegebenen Beispiel ist der erste Vergleichnegativ und die Einfügungs-Variable (Einfügung) aufsummiertwird zu Einfügung= 0 + 20 = 1.
[0076] Dernächsteempfangene, um ein Bit (20) nach rechtsverschobene Messvektor MV1 wird mit demkorrespondierenden Referenzvektor RV1 verglichen.In dem gegebenen Beispiel führtdieser Vergleich auch zu einer negativen Übereinstimmung und die Einfügungs-Variable(Einfügung)wird aufsummiert zu Einfügung= 1 + 21 = 3. Die Iterationsschleife wirdauf Grund der negativen Übereinstimmungdurchlaufen. Der empfangene Messvektor wird gemäß der Einfügungs-Variable um drei Bitsnach rechts verschoben, wie in 10C gezeigt ist.Der in 10C ausgeführte Vergleichführt zueiner positiven Übereinstimmungund die Iterationsschleife wird im Verfahrensschritt S3-3 verlassen. DerSchleifenzählerwird im Verfahrensschritt S3-8 erhöht, und die Übertragungseinrichtung 7-i wirdaktiviert, um einen letzten Messvektor MV3 „1111111100000000" zu übertragen,der mit dem korrespondierenden Referenzvektor RV verglichen werdensoll, wie in 10D dargestellt ist.Die statische 0 am Ausgang der EXOR-Logik zeigt eine positive Übereinstimmungim Verfahrensschritt S3-11 an, so dass die Bitversatz-Einfügung imVerfahrensschritt S3-12 berechnet wird, das heißt: Bitversatz = – 3 UI.
[0077] Wieaus 9, 10 ersichtlich ist, entscheidet der imVerfahrensschritt S3-10 durchgeführteVergleich die Richtung der Zeitverzögerung. Eine positive Übereinstimmungzeigt einen negativen Bitversatz an, das heißt, dass die über dieDatenübertragungsleitung 3-i übertragenenDaten schneller sind als Referenzdaten, und der Bitversatz der Datenübertragungsleitungwird im Verfahrensschritt S3-13 berechnet (Bitversatz = – Einfügung).
[0078] Istdas Vergleichsergebnis von Verfahrensschritt S3-10 negativ („no"), so weist die Datenübertragungsleitung 3-i einenpositiven Bitversatz auf, das heißt, dass die über dieDatenübertragungsleitung übertragenenDaten langsamer sind als Referenzdaten. In diesem Fall wird derBitversatz im Verfahrensschritt S3-12 berechnet (Bitversatz = 21 – Einfügung).
[0079] Nachdemim Verfahrensschritt S3 der Vorgang zum Messen von Bitversatz imVerfahrensschritt S3-15 abgeschlossen ist, wird der berechnete Bitversatzder Datenübertragungsleitungenim Verfahrensschritt S4 kompensiert.
[0080] 11 zeigt ein Flussdiagrammder Kompensation von Bitversatz im Verfahrensschritt S4. Nach einemVerfahrensschritt Start S4-0 wird im Verfahrensschritt S4-1 dielangsamste Datenübertragungsleitungals die Datenübertragungsleitungmit dem größten Bitversatzder berechneten Bitversätzevon allen Datenübertragungsleitungen3-i festgelegt.
[0081] Ineinem weiteren Verfahrensschritt S4-2 wird der relative Bitversatzvon jeder Datenübertragungsleitungmit Bezug auf den größten Bitversatzder langsamsten Datenübertragungsleitungberechnet.
[0082] Nachdemder relative Bitversatz einer jeden Datenübertragungsleitung berechnetworden ist, wird jede Datenübertragungsleitung 3-i mitihrem berechneten relativen Bitversatz im Verfahrensschritt S4-3verzögert. Dieseswird dadurch ausgeführt,dass korrespondierende Datenverzögerungselementegeschaltet werden, die in der Datenempfangseinrichtung der Datenübertragungsleitung 3-i vorgesehensind.
[0083] DerVorgang der Kompensation von Bitversatz wird im VerfahrensschrittS4-4 beendet.
[0084] Nachdemdie Kompensation ausgeführtworden ist, schaltet die Steuereinheit 8 des Speicherpuffers einenMultiplexer 10-i innerhalb der DRAM 1-i auf denanderen Eingang und die Daten der Datenquelle 6-i werdenin einem Datenübertragungsmodus über dieDatenübertragungsleitung 3-i andie Datenempfangseinrichtung 5-i übertragen.
[0085] Sobalddie Versorgungsspannung Vs für die DIMM-Bausteineaufgebracht worden ist, das bedeutet, dass sobald das System eingeschaltetworden ist, gibt es genügendZeit, um eine Initialisierungsroutine ablaufen zu lassen. Da diebeschriebenen Probleme auf der physikalischen Konfiguration beruhen,dass heißtauf der Ausdehnung der Anordnung, ist der Effekt, der durch daserfindungsgemäße Verfahrenkompensiert werden muss, ein statischer Effekt. Weiterhin sind alleSignalquellen 6-i und Signalsenken 5-i in demselben DIMM-Bausteinangeordnet, so dass es keine Notwendigkeit gibt, irgendwelche externenEinflüssein Betracht zu ziehen.
[0086] DasVerfahren zur Messung der Verzögerungszeitgemäß der vorliegendenErfindung legt einen diskreten Wert m für jedes Datensignal fest. DieserWert m reflektiert die in Bezug auf eine feste definierte Referenzzeitgemessene Verzögerungszeit.Der folgende Text behandelt auf beispielhafte Weise eine bevorzugte Ausführungsform.
[0087] DerMessvektor MV wird so festgelegt, dass es für die Empfangseinrichtungeninnerhalb des Speicherpuffers möglichist, eine maximale im voraus festgelegte Verzögerungszeit m × UI zuidentifizieren, und die korrespondierende Zahl m von Verzögerungselementenzur Kompensation festzulegen.
[0088] Istdie maximale VerzögerungszeitDTmax = ± 2 UI (m=2), die identifiziertund kompensiert werden muss, ist der korrespondieren MessvektorMV wie in Tabelle 1 gezeigt ausgebildet.
[0089] Alternativkann auch der inverse Messreferenzvektor MV verwendet werden, wiein Tabelle 2 angegeben ist.
[0090] Esist zum Prinzip der Erfindung irrelevant, welcher dieser beidenMessvektoren MV, MV verwendet wird.Jedoch ist das Verfahren gemäß der vorliegendenErfindung nur fürden ersten Fall beschrieben. Weiterhin repräsentieren diese beiden MessvektorenMV, MV nur die minimale erforderlicheDatenlängezur Abtastung und Kompensation für ± 2 UI.Im Prinzip könnendie individuellen Teilfolgen ebenfalls ausgedehnt werden.
[0091] Dergleiche Messvektor MV wird in den Empfangseinrichtungen als einReferenzmessvektor (RV) für alleDatenleitungen Dli in dem Empfängerbausteindes Speicherpuffers 2 gespeichert. Die Übertragungseinrichtungen beginnensimultan diesen Messvektor MV zu übertragen. In Abhängigkeitvon der Verzögerungszeit derDatenleitung wird der Messvektor MV zu verschiedenen Zeitpunktenempfangen. Die obere Zeile von Tabelle 3 enthält in jedem Fall den Referenzmessvektor(RV), und die untere Zeile von Tabelle 3 repräsentiert in jedem Fall denempfangenen Datenvektor.
[0092] DieBewertung des empfangenen Datenvektors wird in Schritten durchgeführt. Ineinem ersten Schritt wird identifiziert, ob es irgendeine Verschiebunggibt, das bedeutet eine 0·U·1, 1 UIoder 2 UI Verschiebung im Vergleich zu dem gespeicherten Referenzvektor(RV). Die Richtung wird in einem zweiten Schritt bestimmt, das bedeutet,ob die Verschiebung eine Verzögerungoder eine Voreilung ist (siehe die obigen Beispiele).
[0093] DasVorhandensein einer Verschiebung wird mittels einer logischen Operationeines EXOR-Gatters festgestellt, die mit den Referenzvektoren undMessvektoren ausgeführtwird. Jede Verschiebungstiefe wird von ihrem eigenen Messvektoradressiert. Der Messvektor 1 wird zur Identifizierung einer1 UI Ver schiebung, der Messvektor 2 zur Identifizierungeiner 2 UI Verschiebung verwendet und so weiter. Wie aus den obigen Beispielenersichtlich ist, wird eine permanente „1" an dem Ausgang der EXOR-Logik nur für die jeweiligenSequenzen erzeugt. In diesem Fall ist es irrelevant, ob dieses eineVerzögerungoder eine Voreilung ist, die Tatsache, dass eine Verschiebung aufgetretenist, wird durch Anwendung dieses Verfahrens verlässlich festgestellt.
[0094] DerMessvektor MV, der der Sequenz zur Identifizierung der Verzögerung folgt,wird benutzt, um die Verschiebungsrichtung zu bestimmen. Der MessvektorMV2 gibt die zugehörigeRichtung fürdas Beispiel einer 1 UI Verzögerung.Dieses ist auch der Grund dafür,dass drei Messvektoren notwendig sind, um ± 2 UI verlässlich zuidentifizieren. Obwohl der Messvektor MV2 selbst das Vorhandenseineiner Verschiebung von 2 UI verlässlichabtastet, ist jedoch der Messvektor MV3 erforderlich, um die damitverbundene Richtung festzustellen.
[0095] Nunwird der allgemeine Fall definiert, um alle für diesen Zweck verwendetenMessvektoren MV abzudecken. Es wird vorausgesetzt, dass eine maximaleVerschiebung von ± mUI identifiziert und kompensiert werden soll. Die Folge von Messvektorenkann am besten als ein Datenfeld mit einer Zahl von Messvektoren MVbetrachtet werden. Die Messvektoren MV sind dadurch gekennzeichnet,dass die Datenwechselrate von einem Vektor zu dem nächsten halbiertwird. Fürden oben angegebenen Fall (± 2UI) sieht das gespeicherte Referenzdatenfeld RDF der Referenzvektorendaher wie folgt aus:
[0096] DasReferenzdatenfeld RDF der Referenzvektoren weist daher 3 Referenzvektorenauf, und jeder Referenzvektor RV hat eine Datenlänge von 8 Bits. Das allgemeineDatenfeld zur Kompensation einer maximalen Zahl von Zeilen Verzögerung ± m UIweist AZ Zeilen auf, wobei AZ definiert wird zu:
[0097] Einminimales Datenfeld zur Kompensation von ± 4 UI weist demnach AZ =4 Zeilenvektoren auf, wobei jeder 24 = 16Bits aufweist. Das zugehörigeDatenfeld (RDF) ist dann:
[0098] Für zusätzlicheVerzögerungszeiteninnerhalb des DIMM-Bausteins,zum Beispiel bei Datenrückgewinnungoder währendMultiplexens/Demultiplexens, ist es nicht mehr länger notwen dig, dass sie separatbehandelt werden, sondern sie sind automatisch durch das Verfahrengemäß der vorliegendenErfindung mit abgedeckt.
[0099] Gemäß der vorliegendenErfindung wird von jedem DRAM eine spezielle Folge von Messvektoren übertragen.Der Datenaufbau des Messvektors ist schon im Detail oben beschriebenworden. Die Tatsache, dass die Datenwechselrate der Folge von Messvektorenhalbiert von einem Messvektor zum nächsten ausgebildet ist, istbesonders wichtig. Die Messvektoren MVi erzeugen auf diese Weiseein Zählsystem,das auch zusätzlicheVerzögerungenidentifizieren kann, das heißt3, 5 UI und so weiter. Außerdemweisen alle Übertragungseinrichtungenund die Empfangseinrichtungen den gleichen Messvektor als ReferenzvektorenRV auf, damit es möglichist, das Messen von Verzögerungmit dem Verfahren zum Messen von Verzögerung gemäß der vorliegenden Erfindungauszuführen.
1 DRAM 2 Speicherpuffer 3 Datenübertragung 4 Datenübertragungseinrichtung 5 Datenempfangseinrichtung 6 Datenquelle 7 Messmustergenerator 8 Steuereinheit 9 Steuerleitung 10 Multiplexer
权利要求:
Claims (13)
[1] Verfahren zum Messen und Kompensieren von Bitversatzvon Datenübertragungsleitungen,welche mindestens eine Datenübertragungseinrichtungmit einer Datenempfangseinrichtung über einen parallelen Datenbusverbinden, mit den folgenden Verfahrensschritten für jede Datenübertragungsleitung: Messender relativen Zeitverzögerungder Datenübertragungsleitungdurch Senden einer festgelegten Folge von Messvektoren (MV) über dieDatenübertragungsleitung,wobei jeder Messvektor (MV) aus einem abwechselnden Bitmuster besteht,wobei die Bitwechselfrequenz mit jedem übertragenem Messvektor (MV)halbiert wird; Vergleichen der empfangenen Messvektoren (MV'), die über dieDatenübertragungsleitung übertragenwurden, mit zugehörigenReferenzvektoren (RV), welche in der Datenempfangseinrichtung gespeichertsind; Verschieben der empfangenen Messvektoren durch Einfügen vonDateneinheitsintervallen (UI) bis ein empfangener Messvektor (MV') mit einem zugehörigen Referenzvektor(RV) übereinstimmt; Berechneneines relativen Bitversatzes der Übertragungsleitung in Abhängigkeitvon der Anzahl von eingefügtenDateneinheitsintervallen (UI) in Bezug auf eine langsamste Datenübertragungsleitung;und Kompensieren des berechneten relativen Bitversatzes derDatenübertragungsleitungmittels Verzögerungselementen, welchein Abhängigkeitvon dem berechneten relativen Bitversatz geschaltet werden.
[2] Verfahren zum Messen und Kompensieren von Bitversatzvon Datenübertragungsleitungen,welche mindestens eine Datenübertragungseinrichtungmit einer Datenempfangseinrichtung verbinden, nach Anspruch 1, weistes die folgenden Verfahrensschritten für jede Datenübertragungsleitungauf: (a) Initialisieren eines Iterationsschleifen-Zählers (i)und einer Einfügungs-Zählvariableauf Null (i := 0; Einfügung:= ∅); (b) Aktivieren der Datenübertragungseinrichtung zum Übertrageneines Messvektors (MVi), welcher aus einem abwechselndenBitmuster mit einer vorher festgelegten Bitwechselfrequenz besteht, über dieDatenübertragungsleitungzu der Datenempfangseinrichtung, wobei jedes Bit während einesvorher festgelegten Dateneinheitsintervalls (UI) übertragenwird, wobei der Messvektor (MVi) zueinem Referenzvektor (RVi) korrespondiert,der in der Datenempfangseinrichtung gespeichert ist; (c) Vergleichendes von der Datenempfangseinrichtung über die Datenübertragungsleitungempfangenen Messvektors (MVi) mit dem gespeichertenReferenzvektor (RVi); (d) wobei biszum Übereinstimmendes empfangenen Messvektors (MV'i) mit dem gespeicherten Referenzvek tors(RVi) die folgenden Teilschritte in einerIterationsschleife durchgeführtwerden: d1) Aktivieren der Datenübertragungseinrichtung zumSenden eines nächstenMessvektors (MVi+1) mit der halben Bitwechselfrequenzdes vorhergehenden Messvektors (MVi), d2)Ersetzen des Messvektors (RVi), um einenVergleich mit einem nächstenReferenzvektor (RVi+1) durchzuführen, welcherzu dem nächstenMessvektor (MVi+1) korrespondiert, d3)Einfügeneiner Zahl (N) von Dateneinheitsintervallen (UI) durch Verschiebendes empfangenen Messvektors (MVi+1') mittels eines Schieberegisters, wobeidie Zahl (N) der eingefügtenDateneinheitsintervalle (UI) 2 beträgt, gegeben durch die Einfügungs-Zählvariable(Einfügung:= Einfügung+ 2i) d4) Erhöhen des Iterationsschleifenzählers (i:= i + 1); (e) und Berechnen des relativen Bitversatzes derDatenübertragungsleitungin Abhängigkeitvon der Zahl der von der Einfügungs-Variablen(Einfügung)gezählteneingefügtenDateneinheitsintervallen (UI).
[3] Verfahren zum Messen und Kompensieren von Bitversatzvon Datenübertragungsleitungennach Anspruch 2, wobei zum Berechnen des relativen Bitversatzesder Datenübertra gungsleitungim Verfahrensschritt (e) die folgenden Teilschritte durchgeführt werden: (e1)Erhöhendes Iterationsschleifen-Zählers(i) (i = i + 1); (e2) Aktivieren der Datenübertragungseinrichtung zum Übertrageneines nächstenMessvektors, der die halbe Bitwechselfrequenz des letzten Messvektorsaufweist, welcher in der Iterationsschleife im Verfahrensschritt(d) überdie Datenübertragungsleitungan die Datenempfangseinrichtung übertragenwurde; (e3) Ersetzen des in der Iterationsschleife des Verfahrensschritts(d) verwendeten letzten Referenzvektors (RV) durch einen Referenzvektor,der zu dem im Verfahrensschritt (e2) übertragenen Messvektor korrespondiert; (e4)Vergleichen des von der Datenempfangseinrichtung empfangenen Messvektors(MV') mit dem imVerfahrensschritt (e3) ersetzten Referenzvektor; (e5) wobeider Versatz der Übertragungsleitungwie folgt berechnet wird: Versatz = 21 – Einfügung für den Fall,dass die im Verfahrensschritt (e4) verglichenen Vektoren nicht übereinstimmen,und wie folgt berechnet wird: Versatz = – Einfügung für den Fall, dass die im Verfahrensschritt(e4) verglichenen Vektoren übereinstimmen,wobei Einfügungdie im Verfahrensschritt (d4) akkumulierte Einfügungs-Variable ist.
[4] Verfahren zum Messen und Kompensieren von Bitversatzvon Datenübertragungsleitungennach Anspruch 1, wobei das Verfahren zum Messen und Kompensierenvon Bitversatz einer Datenübertragungsleitung ausgeführt, wenndie Datenempfangseinrichtung eingeschaltet bzw. hochgefahren wird.
[5] Verfahren nach Anspruch 1, wobei Daten von der Datenübertragungseinrichtungan die Datenempfangseinrichtung in einem normalen Datenübertragungsmodus übertragen,nachdem das Kompensieren des Versatzes alle Datenübertragungsleitungendurchgeführtworden ist.
[6] Verfahren nach Anspruch 1, wobei die Datenübertragungseinrichtungenals DRAMs ausgebildet sind.
[7] Verfahren nach Anspruch 1, wobei die Datenempfangseinrichtungals ein HUB eines Speicherbausteins ausgebildet ist.
[8] Verfahren nach Anspruch 1, wobei die Datenempfangseinrichtungfür jedeDatenübertragungsleitung eineTakt- und Datenrückgewinnungseinheitaufweist, um mit dem ersten überdie Übertragungsleitung übertragenenMessvektor mitzulaufen bzw. synchron zu laufen.
[9] Verfahren nach Anspruch 1, wobei zum Kompensierendes Versatzes der Datenübertragungsleitungdie folgenden Teilschritte durchgeführt werden: Bestimmendes maximalen Versatzes (skew max) der berechneten Versätze allerDatenübertragungsleitungen; Berechneneines relativen Versatzes einer jeden Datenübertragungsleitung mit Bezugauf den maximalen Versatz der langsamsten Datenübertragungsleitung, und Verzögern jederDatenübertragungsleitungmit ihrem berechneten relativen Versatz.
[10] Verfahren nach Anspruch 1, wobei die Datenübertragungseinrichtungenmittels eines Anforderungssignals aktiviert werden, welches über eineseparate Steuerleitung von der Datenempfangseinrichtung der Datenübertragungseinrichtungengesendet wird.
[11] Verfahren nach Anspruch 10, wobei die Datenübertragungseinrichtungengleichzeitig aktiviert werden.
[12] Verfahren nach Anspruch 1, wobei die Datenübertragungsleitungeinen Teil eines bidirektionalen Datenbusses bildet.
[13] Verfahren nach Anspruch 1, wobei das Vergleichender empfangenen Messvektoren (MV')und der Referenzvektoren (RV) mittels einer EXOR-Logik ausgeführt wird.
类似技术:
公开号 | 公开日 | 专利标题
US20190341095A1|2019-11-07|Memory component that enables calibrated command- and data-timing signal arrival
US8446988B2|2013-05-21|System and method for selectively performing single-ended and differential signaling
JP4070255B2|2008-04-02|半導体集積回路
DE69906793T2|2004-03-18|Verfahren und anordnung für hochgeschwindigkeitsdatenerfassung mit korrektur der bit-zu-bit-zeitgebung und speicheranordnung unter verwendung derselben
EP2248031B1|2018-02-28|Vorrichtungen, systeme und verfahren zur datenbusinversion
DE10235448B4|2011-07-28|Eichverfahren und Speichersystem
US6480946B1|2002-11-12|Memory system for synchronized and high speed data transfer
CN1538454B|2010-06-02|缓冲放大器装置
JP4001670B2|2007-10-31|クロック信号分配方法
KR100679900B1|2007-02-07|메모리 시스템 및 데이터 전송 방법
US7729151B2|2010-06-01|System including a buffered memory module
TWI335514B|2011-01-01|Memory buffers for merging local data from memory modules
Wann et al.1983|Asynchronous and Clocked Control Structures for VSLI Based Interconnection Networks
KR100648057B1|2006-11-23|기준 신호를 이용하여 동기 전송을 하는 장치 및 방법
US7817585B2|2010-10-19|Data capture technique for high speed signaling
US8352774B2|2013-01-08|Inter-clock domain data transfer FIFO circuit
US6173345B1|2001-01-09|Method and apparatus for levelizing transfer delays for a channel of devices such as memory devices in a memory subsystem
KR100607740B1|2006-08-01|읽기 데이터를 위한 시스템 레이턴시 평준화 방법 및장치
EP1374077B1|2005-02-02|Methode und system zur automatischen verzögerungserkennung und empfängeranpassung für eine synchrone busschnittstelle
US7103790B2|2006-09-05|Memory controller driver circuitry having a multiplexing stage to provide data to at least N-1 of N data propagation circuits, and having output merging circuitry to alternately couple the N data propagation circuits to a data pad to generate either a 1x or Mx stream of data
US6381293B1|2002-04-30|Apparatus and method for serial data communication between plurality of chips in a chip set
US7103793B2|2006-09-05|Memory controller having receiver circuitry capable of alternately generating one or more data streams as data is received at a data pad, in response to counts of strobe edges received at a strobe pad
KR100348726B1|2002-08-14|방향성 결합식 메모리 모듈
JP4343073B2|2009-10-14|半導体装置
KR101584391B1|2016-01-21|유연하고 확장가능한 메모리 아키텍쳐
同族专利:
公开号 | 公开日
US20050005184A1|2005-01-06|
US7275173B2|2007-09-25|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2005-02-10| OP8| Request for examination as to paragraph 44 patent law|
2009-11-19| 8131| Rejection|
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]